package DAO;

import Bean.*;
import DataBase.TransacionException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


public class DAOCodigo extends  AbstractDAO<Codigo>{

    @Override
    public void insertar(Codigo codigo) throws TransacionException {
        String sql = "insert into codigo(codigo)values(?);";
        try {
            this.adminConsulta.iniciar();
            List<Object> params = new ArrayList();
            params.add(codigo.getCodigo());
            adminConsulta.doUpdate(sql, params);
            this.adminConsulta.finalizar();
        } catch (SQLException ex) {
            adminConsulta.rollBack();
        }
    }

    @Override
    public void borrar(String condicion) throws TransacionException {
         String sql = "delete from codigo where idCodigo= ? ";
        try{
            this.adminConsulta.iniciar();
            List<Object> params = new ArrayList();
            params.add(condicion);
            this.adminConsulta.doUpdate(sql, params);
            this.adminConsulta.finalizar();
        }catch (SQLException ex) {
            adminConsulta.rollBack();
        }
    }

    @Override
    public void actualizar(Codigo codigo, String condicion) throws TransacionException {
        String sql = "update codigo set codigo=? where idCodigo = ?";
        try{
            this.adminConsulta.iniciar();
            List<Object> params = new ArrayList();
            params.add(codigo.getCodigo());
            params.add(condicion);
            adminConsulta.doUpdate(sql, params);
            this.adminConsulta.finalizar();
        }catch(SQLException ex){
            adminConsulta.rollBack();
        }
    }

    @Override
    public List<Codigo> buscar(String condicion, List<Object> params) {
        List<Codigo> result=null;
        String sql = "select * from codigo "+condicion;
        pstmt= adminConsulta.prepareTheStatementForQuery(sql, params);
        result = adminConsulta.ejecutarSeleccion(pstmt, Codigo.class);
        return result;
    }

    public List<Codigo> getAllCodigos(){
        return buscar("",null);
    }
}
